//package com.digiwin.dap.middleware;
//
//
//import com.digiwin.dap.middleware.util.JsonUtils;
//import com.fasterxml.jackson.databind.ObjectMapper;
//import org.springframework.boot.actuate.trace.http.HttpExchangeTracer;
//import org.springframework.boot.actuate.trace.http.HttpTraceRepository;
//import org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter;
//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.Primary;
//import org.springframework.http.converter.HttpMessageConverter;
//import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
//
//import org.springframework.web.servlet.config.annotation.*;
//
//import java.util.List;
//
///**
// * @author chenxsa
// * @Description 全局支持跨域访问api
// */
//@Configuration
//public class WebMvcConfigurationExtendConfig extends WebMvcConfigurationSupport {
//
//    /**
//     * 配置线程池
//     *
//     * @param configurer
//     */
//    @Override
//    public void configureAsyncSupport(final AsyncSupportConfigurer configurer) {
//        configurer.setDefaultTimeout(6000 * 1000L);
//        super.configureAsyncSupport(configurer);
//    }
//
//    /**
//     * 功能描述:添加跨域访问
//     *
//     * @param registry
//     * @return void
//     * @author chenxsa
//     * @date 2018-5-12 11:06
//     */
//    @Override
//    public void addCorsMappings(CorsRegistry registry) {
//        registry.addMapping("/**").allowedOrigins("*")
//                .allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
//                .allowCredentials(false).maxAge(3600);
//    }
//
//    @Override
//    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//        registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
//        registry.addResourceHandler("swagger-ui.html")
//                .addResourceLocations("classpath:/META-INF/resources/");
//        registry.addResourceHandler("/webjars/**")
//                .addResourceLocations("classpath:/META-INF/resources/webjars/");
//        super.addResourceHandlers(registry);
//    }
//
//
//    @Override
//    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
//        for (HttpMessageConverter<?> httpMessageConverter : converters) {
//            if (MappingJackson2HttpMessageConverter.class.isInstance(httpMessageConverter)) {
//                ((MappingJackson2HttpMessageConverter) httpMessageConverter).setObjectMapper(JsonUtils.createObjectMapper());
//            }
//        }
//    }
//
//
//    @Override
//    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
//        configurer.enable();
//    }
//
//
//}
